44 CaptureBaseWPtr capture_ptr_;
45 FactorBasePtrList factor_list_;
47 static unsigned int feature_id_count_;
72 const Eigen::VectorXd& _measurement,
73 const Eigen::MatrixXd& _meas_uncertainty,
77 virtual void remove(
bool viral_remove_parent_without_children =
false);
80 return not factor_list_.empty();
84 unsigned int id()
const;
115 void setMeasurement(
const Eigen::VectorXd& _meas);
116 void setMeasurementCovariance(
const Eigen::MatrixXd& _meas_cov);
117 void setMeasurementInformation(
const Eigen::MatrixXd& _meas_info);
138 bool hasFactor(FactorBaseConstPtr _fac)
const;
140 void link(CaptureBasePtr cap_ptr);
141 template <
typename classType,
typename... T>
142 static std::shared_ptr<classType>
emplace(CaptureBasePtr _cpt_ptr, T&&... all);
148 std::ostream& stream,
149 std::string _tabs =
"")
const;
150 void print(
int depth,
154 std::ostream& stream = std::cout,
155 std::string _tabs =
"")
const;
157 virtual CheckLog localCheck(
bool _verbose, std::ostream& _stream, std::string _tabs =
"")
const;
158 bool check(
CheckLog& _log,
bool _verbose, std::ostream& _stream, std::string _tabs =
"")
const;
161 void setCapture(CaptureBasePtr _cap_ptr)
163 capture_ptr_ = _cap_ptr;
165 FactorBasePtr addFactor(FactorBasePtr _co_ptr);
166 void removeFactor(FactorBasePtr _co_ptr);
177template <
typename classType,
typename... T>
180 std::shared_ptr<classType> ftr = std::make_shared<classType>(std::forward<T>(all)...);
187 FactorBaseConstPtrList list_const;
188 for (
auto&& obj_ptr : factor_list_) list_const.push_back(obj_ptr);
204 return capture_ptr_.lock();
209 return capture_ptr_.lock();
Definition: capture_base.h:39
Definition: check_log.h:28
Definition: factor_base.h:72
Definition: feature_base.h:38
bool hasFactor(FactorBaseConstPtr _fac) const
Definition: feature_base.cpp:97
unsigned int feature_id_
Definition: feature_base.h:50
FeatureBase(const std::string &_type, const Eigen::VectorXd &_measurement, const Eigen::MatrixXd &_meas_uncertainty, UncertaintyType _uncertainty_type=UNCERTAINTY_IS_COVARIANCE)
Constructor from capture pointer and measure.
Definition: feature_base.cpp:28
CaptureBaseConstPtr getCapture() const
Definition: feature_base.h:202
Eigen::VectorXd expectation_
expectation
Definition: feature_base.h:56
Eigen::MatrixXd measurement_covariance_
the measurement covariance matrix
Definition: feature_base.h:54
Eigen::MatrixXd measurement_sqrt_information_upper_
the squared root information matrix
Definition: feature_base.h:55
Eigen::MatrixXd getMeasurementInformation() const
Definition: feature_base.h:227
void link(CaptureBasePtr cap_ptr)
Definition: feature_base.cpp:152
const Eigen::MatrixXd & getMeasurementSquareRootInformationUpper() const
Definition: feature_base.h:232
void setLandmarkId(unsigned int _lmk_id)
Definition: feature_base.h:97
static std::shared_ptr< classType > emplace(CaptureBasePtr _cpt_ptr, T &&... all)
Definition: feature_base.h:178
bool hasChildren() const override
Definition: feature_base.h:78
~FeatureBase() override=default
UncertaintyType
Definition: feature_base.h:60
@ UNCERTAINTY_IS_STDDEV
Definition: feature_base.h:63
@ UNCERTAINTY_IS_INFO
Definition: feature_base.h:62
@ UNCERTAINTY_IS_COVARIANCE
Definition: feature_base.h:61
const Eigen::VectorXd & getMeasurement() const
Definition: feature_base.h:217
unsigned int track_id_
Definition: feature_base.h:51
const Eigen::VectorXd & getExpectation() const
Definition: feature_base.h:237
FactorBaseConstPtrList getFactorList() const
Definition: feature_base.h:185
Eigen::VectorXd measurement_
the measurement vector
Definition: feature_base.h:53
virtual void printHeader(int depth, bool factored_by, bool metric, bool state_blocks, std::ostream &stream, std::string _tabs="") const
Definition: feature_base.cpp:168
void setExpectation(const Eigen::VectorXd &expectation)
Definition: feature_base.h:242
unsigned int landmark_id_
Definition: feature_base.h:52
FrameBaseConstPtr getFrame() const
Definition: feature_base.cpp:112
virtual CheckLog localCheck(bool _verbose, std::ostream &_stream, std::string _tabs="") const
Definition: feature_base.cpp:195
void print(int depth, bool factored_by, bool metric, bool state_blocks, std::ostream &stream=std::cout, std::string _tabs="") const
Definition: feature_base.cpp:182
unsigned int id() const
Definition: feature_base.h:197
void setTrackId(unsigned int _tr_id)
Definition: feature_base.h:89
unsigned int trackId() const
Definition: feature_base.h:85
unsigned int landmarkId() const
Definition: feature_base.h:93
bool check(CheckLog &_log, bool _verbose, std::ostream &_stream, std::string _tabs="") const
Definition: feature_base.cpp:233
const Eigen::MatrixXd & getMeasurementCovariance() const
Definition: feature_base.h:222
virtual void remove(bool viral_remove_parent_without_children=false)
Definition: feature_base.cpp:56
Base class for Nodes.
Definition: node_base.h:74
Definition: sensor_base.h:124
Definition: capture_base.h:23